home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 25 / CU Amiga Magazine's Super CD-ROM 25 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-08].iso / CUCD / Programming / GMS / GMSDev / EModules / gms / system / modules.e < prev    next >
Encoding:
Text File  |  1998-04-12  |  3.0 KB  |  106 lines

  1. /*
  2. **  $VER: modules.e V1.0
  3. **
  4. **  (C) Copyright 1996-1997 DreamWorld Productions.
  5. **      All Rights Reserved.
  6. **
  7. */
  8.  
  9. OPT MODULE
  10. OPT EXPORT
  11. OPT PREPROCESS
  12.  
  13. MODULE 'gms/dpkernel/dpkernel','gms/system/register'
  14. MODULE 'gms/files/files','gms/files/segments'
  15.  
  16. /*****************************************************************************
  17. ** Module Object.
  18. */
  19.  
  20. CONST VER_MODULE  = 1,
  21.       TAGS_MODULE = $FFFB0000 OR ID_MODULE
  22.  
  23. OBJECT module
  24.   head[1]      :ARRAY OF head    /* [00] Standard header */
  25.   number       :INT              /* [12] Number of the associated module */
  26.   modbase      :LONG             /* [14] Function jump table */
  27.   segment      :PTR TO segment   /* [18] Segment pointer */
  28.   tabletype    :INT              /* [22] */
  29.   empty        :INT              /* [24] */
  30.   functionlist :PTR TO function  /* [26] Size of the function table */
  31.   version      :LONG             /* [30] Version of the module */
  32.   revision     :LONG             /* [34] Revision of the module */
  33.   table        :PTR TO modheader /* [38] Header */
  34.   name         :LONG             /* [42] Name of the module */
  35. ENDOBJECT
  36.  
  37. OBJECT function
  38.   address :PTR TO LONG
  39.   name    :PTR TO CHAR
  40. ENDOBJECT
  41.  
  42. CONST MODA_NUMBER    = TWORD OR 12,
  43.       MODA_TABLETYPE = TWORD OR 22,
  44.       MODA_VERSION   = TLONG OR 30,
  45.       MODA_REVISION  = TLONG OR 34,
  46.       MODA_NAME      = TAPTR OR 42
  47.  
  48. /****************************************************************************/
  49.  
  50. OBJECT modentry
  51.   next     :PTR TO modentry    /* Next module in list */
  52.   prev     :PTR TO modentry    /* Previous module in list */
  53.   segment  :PTR TO segment     /* Module segment */
  54.   header   :PTR TO modheader   /* Pointer to module header */
  55.   moduleid :INT                /* Module ID */
  56.   empty    :INT                /* Reserved */
  57.   name     :PTR TO CHAR        /* Name of the module */
  58. ENDOBJECT
  59.  
  60. OBJECT lvofunction
  61.   jump :INT
  62.   code :LONG
  63. ENDOBJECT
  64.  
  65. CONST JMP_DEFAULT = 1,
  66.       JMP_AMIGAE  = 2
  67.  
  68. #define JMP_LIBRARY JMP_AMIGAE
  69. #define JMP_LVO     JMP_DEFAULT
  70.  
  71. /*****************************************************************************
  72. ** Module file header.
  73. */
  74.  
  75. CONST MODULE_HEADER_V1 = $4D4F4401
  76.  
  77. OBJECT modheader
  78.   version        :LONG
  79.   init           :LONG
  80.   close          :LONG  
  81.   expunge        :LONG
  82.   tabletype      :INT
  83.   opencount      :INT
  84.   author         :PTR TO CHAR
  85.   funclist       :PTR TO LONG  /* Pointer to function list */
  86.   cpunumber      :LONG         /* CPU that this module is compiled for */
  87.   modversion     :LONG         /* Version of this module */
  88.   modrevision    :LONG         /* Revision of this module */
  89.   mindpkversion  :LONG         /* Minimum DPK version required */
  90.   mindpkrevision :LONG         /* Minimum DPK revision required */
  91.   open           :LONG
  92.   modbase        :LONG         /* Generated function base for given CPU */
  93.   copyright      :PTR TO CHAR
  94.   date           :PTR TO CHAR
  95.   name           :PTR TO CHAR
  96.   dpktable       :INT
  97. ENDOBJECT
  98.  
  99. CONST CPU_68000 = 1,
  100.       CPU_68010 = 2,
  101.       CPU_68020 = 3,
  102.       CPU_68030 = 4,
  103.       CPU_68040 = 5,
  104.       CPU_68060 = 6
  105.  
  106.